50a618dfb230cf4461cb9bebfd3465a92b7c7327,java/java-analysis-impl/src/com/intellij/codeInspection/streamMigration/StreamApiMigrationInspection.java,TerminalBlock,extractOperation,#,1000

Before Change


                PsiStatement lastStatement = myStatements[myStatements.length - 1];
                if(lastStatement instanceof PsiBreakStatement && op.breaksMe((PsiBreakStatement)lastStatement) &&
                   ReferencesSearch.search(nextFilter.myVariable, new LocalSearchScope(myStatements)).findFirst() == null) {
                  myStatements = Arrays.copyOfRange(myStatements, 0, myStatements.length-1);
                  return new CompoundFilterOp(nextFilter, op);
                }
              }

After Change


              // if t is not used in "...", then this could be converted to
              // list.stream().filter(subList -> subList.stream().anyMatch(condition)).forEach(subList -> ...)
              TerminalBlock withFlatMapFilter = withFlatMap.extractFilter();
              if(withFlatMapFilter != null && !withFlatMapFilter.isEmpty()) {
                PsiStatement[] statements = withFlatMapFilter.getStatements();
                PsiStatement lastStatement = statements[statements.length-1];
                if (lastStatement instanceof PsiBreakStatement && op.breaksMe((PsiBreakStatement)lastStatement) &&
                    ReferencesSearch.search(withFlatMapFilter.getVariable(), new LocalSearchScope(statements)).findFirst() == null) {
                  return new TerminalBlock(new CompoundFilterOp((FilterOp)withFlatMapFilter.getLastOperation(), op),
                                           myVariable, Arrays.copyOfRange(statements, 0, statements.length-1));
                }
              }
            }